{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will experiment with the linear advection diffusion equation\n",
    "\\begin{equation}\n",
    "\\frac{\\partial u}{\\partial t} =  - c\\frac{\\partial u}{\\partial x} + \\mu \\frac{\\partial ^2u}{\\partial x^2}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'svg'\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.animation as animation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "nx = 41\n",
    "ny = 41\n",
    "Lx = 1.0\n",
    "Ly = 1.0\n",
    "x = np.linspace(0,Lx,nx)\n",
    "y = np.linspace(0,Ly,ny)\n",
    "xx,yy = np.meshgrid(x,y)\n",
    "dx = Lx/(nx-1)\n",
    "dy = Ly/(ny-1)\n",
    "assert(dx == x[1]-x[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x114f91128>"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
       "<svg height=\"252.018125pt\" version=\"1.1\" viewBox=\"0 0 255.275793 252.018125\" width=\"255.275793pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 252.018125 \n",
       "L 255.275793 252.018125 \n",
       "L 255.275793 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 244.365 228.14 \n",
       "L 244.365 10.7 \n",
       "L 26.925 10.7 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pbcfb78615f)\">\n",
       "    <image height=\"218\" id=\"image8845b10eb2\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-10.14\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" id=\"m6503d55bc5\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"29.576707\" xlink:href=\"#m6503d55bc5\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <defs>\n",
       "       <path d=\"M 31.78125 66.40625 \n",
       "Q 24.171875 66.40625 20.328125 58.90625 \n",
       "Q 16.5 51.421875 16.5 36.375 \n",
       "Q 16.5 21.390625 20.328125 13.890625 \n",
       "Q 24.171875 6.390625 31.78125 6.390625 \n",
       "Q 39.453125 6.390625 43.28125 13.890625 \n",
       "Q 47.125 21.390625 47.125 36.375 \n",
       "Q 47.125 51.421875 43.28125 58.90625 \n",
       "Q 39.453125 66.40625 31.78125 66.40625 \n",
       "z\n",
       "M 31.78125 74.21875 \n",
       "Q 44.046875 74.21875 50.515625 64.515625 \n",
       "Q 56.984375 54.828125 56.984375 36.375 \n",
       "Q 56.984375 17.96875 50.515625 8.265625 \n",
       "Q 44.046875 -1.421875 31.78125 -1.421875 \n",
       "Q 19.53125 -1.421875 13.0625 8.265625 \n",
       "Q 6.59375 17.96875 6.59375 36.375 \n",
       "Q 6.59375 54.828125 13.0625 64.515625 \n",
       "Q 19.53125 74.21875 31.78125 74.21875 \n",
       "z\n",
       "\" id=\"DejaVuSans-30\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(26.395457 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"82.610854\" xlink:href=\"#m6503d55bc5\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 10 -->\n",
       "      <defs>\n",
       "       <path d=\"M 12.40625 8.296875 \n",
       "L 28.515625 8.296875 \n",
       "L 28.515625 63.921875 \n",
       "L 10.984375 60.40625 \n",
       "L 10.984375 69.390625 \n",
       "L 28.421875 72.90625 \n",
       "L 38.28125 72.90625 \n",
       "L 38.28125 8.296875 \n",
       "L 54.390625 8.296875 \n",
       "L 54.390625 0 \n",
       "L 12.40625 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-31\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(76.248354 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"135.645\" xlink:href=\"#m6503d55bc5\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 20 -->\n",
       "      <defs>\n",
       "       <path d=\"M 19.1875 8.296875 \n",
       "L 53.609375 8.296875 \n",
       "L 53.609375 0 \n",
       "L 7.328125 0 \n",
       "L 7.328125 8.296875 \n",
       "Q 12.9375 14.109375 22.625 23.890625 \n",
       "Q 32.328125 33.6875 34.8125 36.53125 \n",
       "Q 39.546875 41.84375 41.421875 45.53125 \n",
       "Q 43.3125 49.21875 43.3125 52.78125 \n",
       "Q 43.3125 58.59375 39.234375 62.25 \n",
       "Q 35.15625 65.921875 28.609375 65.921875 \n",
       "Q 23.96875 65.921875 18.8125 64.3125 \n",
       "Q 13.671875 62.703125 7.8125 59.421875 \n",
       "L 7.8125 69.390625 \n",
       "Q 13.765625 71.78125 18.9375 73 \n",
       "Q 24.125 74.21875 28.421875 74.21875 \n",
       "Q 39.75 74.21875 46.484375 68.546875 \n",
       "Q 53.21875 62.890625 53.21875 53.421875 \n",
       "Q 53.21875 48.921875 51.53125 44.890625 \n",
       "Q 49.859375 40.875 45.40625 35.40625 \n",
       "Q 44.1875 33.984375 37.640625 27.21875 \n",
       "Q 31.109375 20.453125 19.1875 8.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-32\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(129.2825 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"188.679146\" xlink:href=\"#m6503d55bc5\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 30 -->\n",
       "      <defs>\n",
       "       <path d=\"M 40.578125 39.3125 \n",
       "Q 47.65625 37.796875 51.625 33 \n",
       "Q 55.609375 28.21875 55.609375 21.1875 \n",
       "Q 55.609375 10.40625 48.1875 4.484375 \n",
       "Q 40.765625 -1.421875 27.09375 -1.421875 \n",
       "Q 22.515625 -1.421875 17.65625 -0.515625 \n",
       "Q 12.796875 0.390625 7.625 2.203125 \n",
       "L 7.625 11.71875 \n",
       "Q 11.71875 9.328125 16.59375 8.109375 \n",
       "Q 21.484375 6.890625 26.8125 6.890625 \n",
       "Q 36.078125 6.890625 40.9375 10.546875 \n",
       "Q 45.796875 14.203125 45.796875 21.1875 \n",
       "Q 45.796875 27.640625 41.28125 31.265625 \n",
       "Q 36.765625 34.90625 28.71875 34.90625 \n",
       "L 20.21875 34.90625 \n",
       "L 20.21875 43.015625 \n",
       "L 29.109375 43.015625 \n",
       "Q 36.375 43.015625 40.234375 45.921875 \n",
       "Q 44.09375 48.828125 44.09375 54.296875 \n",
       "Q 44.09375 59.90625 40.109375 62.90625 \n",
       "Q 36.140625 65.921875 28.71875 65.921875 \n",
       "Q 24.65625 65.921875 20.015625 65.03125 \n",
       "Q 15.375 64.15625 9.8125 62.3125 \n",
       "L 9.8125 71.09375 \n",
       "Q 15.4375 72.65625 20.34375 73.4375 \n",
       "Q 25.25 74.21875 29.59375 74.21875 \n",
       "Q 40.828125 74.21875 47.359375 69.109375 \n",
       "Q 53.90625 64.015625 53.90625 55.328125 \n",
       "Q 53.90625 49.265625 50.4375 45.09375 \n",
       "Q 46.96875 40.921875 40.578125 39.3125 \n",
       "z\n",
       "\" id=\"DejaVuSans-33\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(182.316646 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"241.713293\" xlink:href=\"#m6503d55bc5\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 40 -->\n",
       "      <defs>\n",
       "       <path d=\"M 37.796875 64.3125 \n",
       "L 12.890625 25.390625 \n",
       "L 37.796875 25.390625 \n",
       "z\n",
       "M 35.203125 72.90625 \n",
       "L 47.609375 72.90625 \n",
       "L 47.609375 25.390625 \n",
       "L 58.015625 25.390625 \n",
       "L 58.015625 17.1875 \n",
       "L 47.609375 17.1875 \n",
       "L 47.609375 0 \n",
       "L 37.796875 0 \n",
       "L 37.796875 17.1875 \n",
       "L 4.890625 17.1875 \n",
       "L 4.890625 26.703125 \n",
       "z\n",
       "\" id=\"DejaVuSans-34\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(235.350793 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" id=\"m4f9b76efad\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"13.351707\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(13.5625 17.150926)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"39.86878\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 5 -->\n",
       "      <defs>\n",
       "       <path d=\"M 10.796875 72.90625 \n",
       "L 49.515625 72.90625 \n",
       "L 49.515625 64.59375 \n",
       "L 19.828125 64.59375 \n",
       "L 19.828125 46.734375 \n",
       "Q 21.96875 47.46875 24.109375 47.828125 \n",
       "Q 26.265625 48.1875 28.421875 48.1875 \n",
       "Q 40.625 48.1875 47.75 41.5 \n",
       "Q 54.890625 34.8125 54.890625 23.390625 \n",
       "Q 54.890625 11.625 47.5625 5.09375 \n",
       "Q 40.234375 -1.421875 26.90625 -1.421875 \n",
       "Q 22.3125 -1.421875 17.546875 -0.640625 \n",
       "Q 12.796875 0.140625 7.71875 1.703125 \n",
       "L 7.71875 11.625 \n",
       "Q 12.109375 9.234375 16.796875 8.0625 \n",
       "Q 21.484375 6.890625 26.703125 6.890625 \n",
       "Q 35.15625 6.890625 40.078125 11.328125 \n",
       "Q 45.015625 15.765625 45.015625 23.390625 \n",
       "Q 45.015625 31 40.078125 35.4375 \n",
       "Q 35.15625 39.890625 26.703125 39.890625 \n",
       "Q 22.75 39.890625 18.8125 39.015625 \n",
       "Q 14.890625 38.140625 10.796875 36.28125 \n",
       "z\n",
       "\" id=\"DejaVuSans-35\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(13.5625 43.667999)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"66.385854\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 10 -->\n",
       "      <g transform=\"translate(7.2 70.185072)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"92.902927\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 15 -->\n",
       "      <g transform=\"translate(7.2 96.702146)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"119.42\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 20 -->\n",
       "      <g transform=\"translate(7.2 123.219219)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"145.937073\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 25 -->\n",
       "      <g transform=\"translate(7.2 149.736292)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"172.454146\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 30 -->\n",
       "      <g transform=\"translate(7.2 176.253365)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"198.97122\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 35 -->\n",
       "      <g transform=\"translate(7.2 202.770438)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m4f9b76efad\" y=\"225.488293\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 40 -->\n",
       "      <g transform=\"translate(7.2 229.287511)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 26.925 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 244.365 228.14 \n",
       "L 244.365 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 244.365 228.14 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 26.925 10.7 \n",
       "L 244.365 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pbcfb78615f\">\n",
       "   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"10.7\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ω0 = 2.0*np.pi\n",
    "ω1 = 2.0*np.pi\n",
    "μ = 0.05\n",
    "c1 = 1.0 # wave speed\n",
    "c2 = 1.0 # wave speed\n",
    "u0 = lambda x,y: np.sin(ω0*x)*np.cos(ω1*y)\n",
    "uexact = lambda x,y,t: np.exp(-μ*(ω0*ω0 + ω1*ω1)*t)*u0(x-c1*t,y-c2*t)\n",
    "plt.imshow(uexact(xx,yy,1.3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "dt = 0.001\n",
    "tend = 1.0\n",
    "t = 0\n",
    "\n",
    "cfl1 = c1*dt/2.0/dx\n",
    "cfl2 = c2*dt/2.0/dx\n",
    "nfl  = μ*dt/dx/dx\n",
    "sol  = []\n",
    "sol.append(u0(xx,yy))\n",
    "\n",
    "while t < tend:\n",
    "    un = sol[-1]\n",
    "    unew = un.copy()\n",
    "    unew[1:-1,1:-1] = un[1:-1,1:-1] - cfl1 * (un[1:-1,2:] - un[1:-1,:-2]) - cfl2 * (un[2:,1:-1] - un[:-2,1:-1]) \n",
    "    + nfl*(un[1:-1,2:] - 2.0*un[1:-1,1:-1] + un[1:-1,:-2])+ nfl*(un[2:,1:-1] - 2.0*un[1:-1,1:-1] + un[:-2,1:-1])\n",
    "\n",
    "    # periodic boundaries - do the x+ face\n",
    "    s = slice(1,-1)\n",
    "    unew[s,-1] = un[s,-1] - cfl1 * (un[s,1] - un[s,-2]) - cfl2 * (un[2:,-1] - un[:-2,-1]) \n",
    "    + nfl*(un[s,1] - 2.0*un[s,-1] + un[s,-2])+ nfl*(un[2:,-1] - 2.0*un[s,-1] + un[:-2,-1])\n",
    "    \n",
    "    unew[0,-1] = un[0,-1] - cfl1 * (un[0,1] - un[0,-2]) - cfl2 * (un[1,-1] - un[-2,-1]) \n",
    "    + nfl*(un[0,1] - 2.0*un[0,-1] + un[0,-2])+ nfl*(un[1,-1] - 2.0*un[0,-1] + un[-2,-1])\n",
    "    \n",
    "    unew[-1,-1] = un[-1,-1] - cfl1 * (un[-1,1] - un[-1,-2]) - cfl2 * (un[1,-1] - un[-2,-1]) \n",
    "    + nfl*(un[-1,1] - 2.0*un[-1,-1] + un[-1,-2])+ nfl*(un[1,-1] - 2.0*un[0,-1] + un[-2,-1])\n",
    "    \n",
    "    unew[:,0] = unew[:,-1]\n",
    "    \n",
    "    # periodic boundaries - do the y+ face\n",
    "    s = slice(1,-1)    \n",
    "    unew[-1,s] = un[-1,s] - cfl1 * (un[-1,2:] - un[-1,:-2]) - cfl2 * (un[1,s] - un[-2,s]) \n",
    "    + nfl*(un[1,s] - 2.0*un[-1,s] + un[-2,s])+ nfl*(un[-1,2:] - 2.0*un[-1,s] + un[-1,:-2])    \n",
    "    \n",
    "    unew[-1,0] = un[-1,0] - cfl1 * (un[1,0] - un[-2,0]) - cfl2 * (un[-1,1] - un[-1,-2]) \n",
    "    + nfl*(un[1,0] - 2.0*un[-1,0] + un[-2,0])+ nfl*(un[-1,1] - 2.0*un[-1,0] + un[-1,-2])\n",
    "\n",
    "    unew[0,:] = unew[-1,:]\n",
    "#     unew[0] = un[0] + cfl * (un[1] - un[-2])\n",
    "#     unew[-1] = un[-1] - cfl * (un[1] - un[-2]) + nfl*(un[-2] - 2.0*un[-1] + un[1])   \n",
    "#     unew[0] = unew[-1]\n",
    "    sol.append(unew)\n",
    "    t += dt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
       "<svg height=\"252.018125pt\" version=\"1.1\" viewBox=\"0 0 255.275793 252.018125\" width=\"255.275793pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 252.018125 \n",
       "L 255.275793 252.018125 \n",
       "L 255.275793 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 244.365 228.14 \n",
       "L 244.365 10.7 \n",
       "L 26.925 10.7 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p6071c25e9d)\">\n",
       "    <image height=\"218\" id=\"imagedbb6e224a9\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"27\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-10.018125\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" id=\"md5c9ba0249\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"29.576707\" xlink:href=\"#md5c9ba0249\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <defs>\n",
       "       <path d=\"M 31.78125 66.40625 \n",
       "Q 24.171875 66.40625 20.328125 58.90625 \n",
       "Q 16.5 51.421875 16.5 36.375 \n",
       "Q 16.5 21.390625 20.328125 13.890625 \n",
       "Q 24.171875 6.390625 31.78125 6.390625 \n",
       "Q 39.453125 6.390625 43.28125 13.890625 \n",
       "Q 47.125 21.390625 47.125 36.375 \n",
       "Q 47.125 51.421875 43.28125 58.90625 \n",
       "Q 39.453125 66.40625 31.78125 66.40625 \n",
       "z\n",
       "M 31.78125 74.21875 \n",
       "Q 44.046875 74.21875 50.515625 64.515625 \n",
       "Q 56.984375 54.828125 56.984375 36.375 \n",
       "Q 56.984375 17.96875 50.515625 8.265625 \n",
       "Q 44.046875 -1.421875 31.78125 -1.421875 \n",
       "Q 19.53125 -1.421875 13.0625 8.265625 \n",
       "Q 6.59375 17.96875 6.59375 36.375 \n",
       "Q 6.59375 54.828125 13.0625 64.515625 \n",
       "Q 19.53125 74.21875 31.78125 74.21875 \n",
       "z\n",
       "\" id=\"DejaVuSans-30\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(26.395457 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"82.610854\" xlink:href=\"#md5c9ba0249\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 10 -->\n",
       "      <defs>\n",
       "       <path d=\"M 12.40625 8.296875 \n",
       "L 28.515625 8.296875 \n",
       "L 28.515625 63.921875 \n",
       "L 10.984375 60.40625 \n",
       "L 10.984375 69.390625 \n",
       "L 28.421875 72.90625 \n",
       "L 38.28125 72.90625 \n",
       "L 38.28125 8.296875 \n",
       "L 54.390625 8.296875 \n",
       "L 54.390625 0 \n",
       "L 12.40625 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-31\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(76.248354 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"135.645\" xlink:href=\"#md5c9ba0249\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 20 -->\n",
       "      <defs>\n",
       "       <path d=\"M 19.1875 8.296875 \n",
       "L 53.609375 8.296875 \n",
       "L 53.609375 0 \n",
       "L 7.328125 0 \n",
       "L 7.328125 8.296875 \n",
       "Q 12.9375 14.109375 22.625 23.890625 \n",
       "Q 32.328125 33.6875 34.8125 36.53125 \n",
       "Q 39.546875 41.84375 41.421875 45.53125 \n",
       "Q 43.3125 49.21875 43.3125 52.78125 \n",
       "Q 43.3125 58.59375 39.234375 62.25 \n",
       "Q 35.15625 65.921875 28.609375 65.921875 \n",
       "Q 23.96875 65.921875 18.8125 64.3125 \n",
       "Q 13.671875 62.703125 7.8125 59.421875 \n",
       "L 7.8125 69.390625 \n",
       "Q 13.765625 71.78125 18.9375 73 \n",
       "Q 24.125 74.21875 28.421875 74.21875 \n",
       "Q 39.75 74.21875 46.484375 68.546875 \n",
       "Q 53.21875 62.890625 53.21875 53.421875 \n",
       "Q 53.21875 48.921875 51.53125 44.890625 \n",
       "Q 49.859375 40.875 45.40625 35.40625 \n",
       "Q 44.1875 33.984375 37.640625 27.21875 \n",
       "Q 31.109375 20.453125 19.1875 8.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-32\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(129.2825 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"188.679146\" xlink:href=\"#md5c9ba0249\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 30 -->\n",
       "      <defs>\n",
       "       <path d=\"M 40.578125 39.3125 \n",
       "Q 47.65625 37.796875 51.625 33 \n",
       "Q 55.609375 28.21875 55.609375 21.1875 \n",
       "Q 55.609375 10.40625 48.1875 4.484375 \n",
       "Q 40.765625 -1.421875 27.09375 -1.421875 \n",
       "Q 22.515625 -1.421875 17.65625 -0.515625 \n",
       "Q 12.796875 0.390625 7.625 2.203125 \n",
       "L 7.625 11.71875 \n",
       "Q 11.71875 9.328125 16.59375 8.109375 \n",
       "Q 21.484375 6.890625 26.8125 6.890625 \n",
       "Q 36.078125 6.890625 40.9375 10.546875 \n",
       "Q 45.796875 14.203125 45.796875 21.1875 \n",
       "Q 45.796875 27.640625 41.28125 31.265625 \n",
       "Q 36.765625 34.90625 28.71875 34.90625 \n",
       "L 20.21875 34.90625 \n",
       "L 20.21875 43.015625 \n",
       "L 29.109375 43.015625 \n",
       "Q 36.375 43.015625 40.234375 45.921875 \n",
       "Q 44.09375 48.828125 44.09375 54.296875 \n",
       "Q 44.09375 59.90625 40.109375 62.90625 \n",
       "Q 36.140625 65.921875 28.71875 65.921875 \n",
       "Q 24.65625 65.921875 20.015625 65.03125 \n",
       "Q 15.375 64.15625 9.8125 62.3125 \n",
       "L 9.8125 71.09375 \n",
       "Q 15.4375 72.65625 20.34375 73.4375 \n",
       "Q 25.25 74.21875 29.59375 74.21875 \n",
       "Q 40.828125 74.21875 47.359375 69.109375 \n",
       "Q 53.90625 64.015625 53.90625 55.328125 \n",
       "Q 53.90625 49.265625 50.4375 45.09375 \n",
       "Q 46.96875 40.921875 40.578125 39.3125 \n",
       "z\n",
       "\" id=\"DejaVuSans-33\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(182.316646 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"241.713293\" xlink:href=\"#md5c9ba0249\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 40 -->\n",
       "      <defs>\n",
       "       <path d=\"M 37.796875 64.3125 \n",
       "L 12.890625 25.390625 \n",
       "L 37.796875 25.390625 \n",
       "z\n",
       "M 35.203125 72.90625 \n",
       "L 47.609375 72.90625 \n",
       "L 47.609375 25.390625 \n",
       "L 58.015625 25.390625 \n",
       "L 58.015625 17.1875 \n",
       "L 47.609375 17.1875 \n",
       "L 47.609375 0 \n",
       "L 37.796875 0 \n",
       "L 37.796875 17.1875 \n",
       "L 4.890625 17.1875 \n",
       "L 4.890625 26.703125 \n",
       "z\n",
       "\" id=\"DejaVuSans-34\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(235.350793 242.738437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" id=\"m2fb05d1550\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"13.351707\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(13.5625 17.150926)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"39.86878\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 5 -->\n",
       "      <defs>\n",
       "       <path d=\"M 10.796875 72.90625 \n",
       "L 49.515625 72.90625 \n",
       "L 49.515625 64.59375 \n",
       "L 19.828125 64.59375 \n",
       "L 19.828125 46.734375 \n",
       "Q 21.96875 47.46875 24.109375 47.828125 \n",
       "Q 26.265625 48.1875 28.421875 48.1875 \n",
       "Q 40.625 48.1875 47.75 41.5 \n",
       "Q 54.890625 34.8125 54.890625 23.390625 \n",
       "Q 54.890625 11.625 47.5625 5.09375 \n",
       "Q 40.234375 -1.421875 26.90625 -1.421875 \n",
       "Q 22.3125 -1.421875 17.546875 -0.640625 \n",
       "Q 12.796875 0.140625 7.71875 1.703125 \n",
       "L 7.71875 11.625 \n",
       "Q 12.109375 9.234375 16.796875 8.0625 \n",
       "Q 21.484375 6.890625 26.703125 6.890625 \n",
       "Q 35.15625 6.890625 40.078125 11.328125 \n",
       "Q 45.015625 15.765625 45.015625 23.390625 \n",
       "Q 45.015625 31 40.078125 35.4375 \n",
       "Q 35.15625 39.890625 26.703125 39.890625 \n",
       "Q 22.75 39.890625 18.8125 39.015625 \n",
       "Q 14.890625 38.140625 10.796875 36.28125 \n",
       "z\n",
       "\" id=\"DejaVuSans-35\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(13.5625 43.667999)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"66.385854\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 10 -->\n",
       "      <g transform=\"translate(7.2 70.185072)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"92.902927\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 15 -->\n",
       "      <g transform=\"translate(7.2 96.702146)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"119.42\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 20 -->\n",
       "      <g transform=\"translate(7.2 123.219219)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"145.937073\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 25 -->\n",
       "      <g transform=\"translate(7.2 149.736292)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"172.454146\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 30 -->\n",
       "      <g transform=\"translate(7.2 176.253365)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"198.97122\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 35 -->\n",
       "      <g transform=\"translate(7.2 202.770438)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m2fb05d1550\" y=\"225.488293\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 40 -->\n",
       "      <g transform=\"translate(7.2 229.287511)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 26.925 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 244.365 228.14 \n",
       "L 244.365 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 26.925 228.14 \n",
       "L 244.365 228.14 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 26.925 10.7 \n",
       "L 244.365 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p6071c25e9d\">\n",
       "   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"10.7\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ims = []\n",
    "fig = plt.figure()\n",
    "\n",
    "i = 0\n",
    "t = 0.0\n",
    "for solution in sol:    \n",
    "    if (i%10==0):        \n",
    "#         im = plt.plot(x,solution,'bo', x, uexact(x,t),'-k',animated=True)\n",
    "        im = plt.imshow(solution)\n",
    "        ims.append([im])\n",
    "    i+=1\n",
    "    t += dt\n",
    "ani = animation.ArtistAnimation(fig, ims, interval=35, blit=True,repeat_delay=1000)\n",
    "ani.save('2dftcs.mp4')    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video  controls>\n",
       "  <source src=\"2dftcs.mp4\" type=\"video/mp4\">\n",
       "</video>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%HTML\n",
    "<video  controls>\n",
    "  <source src=\"2dftcs.mp4\" type=\"video/mp4\">\n",
    "</video>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Accuracy - let's calculate the error at t = 0.5 s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 10.,  12.,  16.,  21.,  27.,  35.,  46.,  59.,  77., 100.])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.floor(np.logspace(1,2,10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n",
      "time= 0.5000999999999612\n"
     ]
    }
   ],
   "source": [
    "npts =np.array([11,21,41,81,161,181,191,201])\n",
    "# npts = np.logspace()\n",
    "dxs = L/(npts-1)\n",
    "errs = []\n",
    "for n in npts:\n",
    "    dt = 0.0001\n",
    "    L = 1.0\n",
    "    x = np.linspace(0,L,n)\n",
    "    dx = L/(n-1)\n",
    "    cfl = c*dt/2.0/dx\n",
    "    nfl = μ*dt/dx/dx    \n",
    "    un = np.sin(ω*x)\n",
    "    t = 0.0\n",
    "    assert(dx == x[1]-x[0])\n",
    "    while t < 0.5:\n",
    "        unew = un.copy()\n",
    "        unew[1:-1] = un[1:-1] - cfl * (un[2:] - un[:-2]) + nfl*(un[2:] - 2.0*un[1:-1] + un[:-2])        \n",
    "        unew[-1] = un[-1] - cfl * (un[1] - un[-2]) + nfl*(un[-2] - 2.0*un[-1] + un[1])   \n",
    "        unew[0] = unew[-1]\n",
    "        un = unew.copy()\n",
    "        t += dt\n",
    "    print('time=',t)\n",
    "    error = np.linalg.norm(unew - uexact(x,t),2)\n",
    "    errs.append(error)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.1896497107882626,\n",
       " 0.0639995940724643,\n",
       " 0.021572041718030406,\n",
       " 0.007048582653741238,\n",
       " 0.0034476760920930526,\n",
       " 0.00350194970851379,\n",
       " 0.0035642421508598108,\n",
       " 0.0036404779420395063]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "errs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11d2943c8>,\n",
       " <matplotlib.lines.Line2D at 0x11d2ae438>]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"252.018125pt\" version=\"1.1\" viewBox=\"0 0 383.2 252.018125\" width=\"383.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 252.018125 \n",
       "L 383.2 252.018125 \n",
       "L 383.2 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 372.5 228.14 \n",
       "L 372.5 10.7 \n",
       "L 37.7 10.7 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" id=\"m50a4b8e974\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"42.93372\" xlink:href=\"#m50a4b8e974\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- $\\mathdefault{10^{1}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 12.40625 8.296875 \n",
       "L 28.515625 8.296875 \n",
       "L 28.515625 63.921875 \n",
       "L 10.984375 60.40625 \n",
       "L 10.984375 69.390625 \n",
       "L 28.421875 72.90625 \n",
       "L 38.28125 72.90625 \n",
       "L 38.28125 8.296875 \n",
       "L 54.390625 8.296875 \n",
       "L 54.390625 0 \n",
       "L 12.40625 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-49\"/>\n",
       "       <path d=\"M 31.78125 66.40625 \n",
       "Q 24.171875 66.40625 20.328125 58.90625 \n",
       "Q 16.5 51.421875 16.5 36.375 \n",
       "Q 16.5 21.390625 20.328125 13.890625 \n",
       "Q 24.171875 6.390625 31.78125 6.390625 \n",
       "Q 39.453125 6.390625 43.28125 13.890625 \n",
       "Q 47.125 21.390625 47.125 36.375 \n",
       "Q 47.125 51.421875 43.28125 58.90625 \n",
       "Q 39.453125 66.40625 31.78125 66.40625 \n",
       "z\n",
       "M 31.78125 74.21875 \n",
       "Q 44.046875 74.21875 50.515625 64.515625 \n",
       "Q 56.984375 54.828125 56.984375 36.375 \n",
       "Q 56.984375 17.96875 50.515625 8.265625 \n",
       "Q 44.046875 -1.421875 31.78125 -1.421875 \n",
       "Q 19.53125 -1.421875 13.0625 8.265625 \n",
       "Q 6.59375 17.96875 6.59375 36.375 \n",
       "Q 6.59375 54.828125 13.0625 64.515625 \n",
       "Q 19.53125 74.21875 31.78125 74.21875 \n",
       "z\n",
       "\" id=\"DejaVuSans-48\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(34.13372 242.738437)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"284.146925\" xlink:href=\"#m50a4b8e974\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- $\\mathdefault{10^{2}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 19.1875 8.296875 \n",
       "L 53.609375 8.296875 \n",
       "L 53.609375 0 \n",
       "L 7.328125 0 \n",
       "L 7.328125 8.296875 \n",
       "Q 12.9375 14.109375 22.625 23.890625 \n",
       "Q 32.328125 33.6875 34.8125 36.53125 \n",
       "Q 39.546875 41.84375 41.421875 45.53125 \n",
       "Q 43.3125 49.21875 43.3125 52.78125 \n",
       "Q 43.3125 58.59375 39.234375 62.25 \n",
       "Q 35.15625 65.921875 28.609375 65.921875 \n",
       "Q 23.96875 65.921875 18.8125 64.3125 \n",
       "Q 13.671875 62.703125 7.8125 59.421875 \n",
       "L 7.8125 69.390625 \n",
       "Q 13.765625 71.78125 18.9375 73 \n",
       "Q 24.125 74.21875 28.421875 74.21875 \n",
       "Q 39.75 74.21875 46.484375 68.546875 \n",
       "Q 53.21875 62.890625 53.21875 53.421875 \n",
       "Q 53.21875 48.921875 51.53125 44.890625 \n",
       "Q 49.859375 40.875 45.40625 35.40625 \n",
       "Q 44.1875 33.984375 37.640625 27.21875 \n",
       "Q 31.109375 20.453125 19.1875 8.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-50\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(275.346925 242.738437)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 2 \n",
       "\" id=\"mdbf7fe2407\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"115.54613\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"158.021667\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"188.15854\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"211.534515\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"230.634077\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_8\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"246.782527\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_9\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"260.77095\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_10\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"273.109614\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_11\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"356.759335\" xlink:href=\"#mdbf7fe2407\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" id=\"mbc628ace28\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mbc628ace28\" y=\"187.397312\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- $\\mathdefault{10^{-4}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 10.59375 35.5 \n",
       "L 73.1875 35.5 \n",
       "L 73.1875 27.203125 \n",
       "L 10.59375 27.203125 \n",
       "z\n",
       "\" id=\"DejaVuSans-8722\"/>\n",
       "       <path d=\"M 37.796875 64.3125 \n",
       "L 12.890625 25.390625 \n",
       "L 37.796875 25.390625 \n",
       "z\n",
       "M 35.203125 72.90625 \n",
       "L 47.609375 72.90625 \n",
       "L 47.609375 25.390625 \n",
       "L 58.015625 25.390625 \n",
       "L 58.015625 17.1875 \n",
       "L 47.609375 17.1875 \n",
       "L 47.609375 0 \n",
       "L 37.796875 0 \n",
       "L 37.796875 17.1875 \n",
       "L 4.890625 17.1875 \n",
       "L 4.890625 26.703125 \n",
       "z\n",
       "\" id=\"DejaVuSans-52\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(7.2 191.19653)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mbc628ace28\" y=\"136.507712\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- $\\mathdefault{10^{-3}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 40.578125 39.3125 \n",
       "Q 47.65625 37.796875 51.625 33 \n",
       "Q 55.609375 28.21875 55.609375 21.1875 \n",
       "Q 55.609375 10.40625 48.1875 4.484375 \n",
       "Q 40.765625 -1.421875 27.09375 -1.421875 \n",
       "Q 22.515625 -1.421875 17.65625 -0.515625 \n",
       "Q 12.796875 0.390625 7.625 2.203125 \n",
       "L 7.625 11.71875 \n",
       "Q 11.71875 9.328125 16.59375 8.109375 \n",
       "Q 21.484375 6.890625 26.8125 6.890625 \n",
       "Q 36.078125 6.890625 40.9375 10.546875 \n",
       "Q 45.796875 14.203125 45.796875 21.1875 \n",
       "Q 45.796875 27.640625 41.28125 31.265625 \n",
       "Q 36.765625 34.90625 28.71875 34.90625 \n",
       "L 20.21875 34.90625 \n",
       "L 20.21875 43.015625 \n",
       "L 29.109375 43.015625 \n",
       "Q 36.375 43.015625 40.234375 45.921875 \n",
       "Q 44.09375 48.828125 44.09375 54.296875 \n",
       "Q 44.09375 59.90625 40.109375 62.90625 \n",
       "Q 36.140625 65.921875 28.71875 65.921875 \n",
       "Q 24.65625 65.921875 20.015625 65.03125 \n",
       "Q 15.375 64.15625 9.8125 62.3125 \n",
       "L 9.8125 71.09375 \n",
       "Q 15.4375 72.65625 20.34375 73.4375 \n",
       "Q 25.25 74.21875 29.59375 74.21875 \n",
       "Q 40.828125 74.21875 47.359375 69.109375 \n",
       "Q 53.90625 64.015625 53.90625 55.328125 \n",
       "Q 53.90625 49.265625 50.4375 45.09375 \n",
       "Q 46.96875 40.921875 40.578125 39.3125 \n",
       "z\n",
       "\" id=\"DejaVuSans-51\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(7.2 140.30693)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-51\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mbc628ace28\" y=\"85.618112\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- $\\mathdefault{10^{-2}}$ -->\n",
       "      <g transform=\"translate(7.2 89.41733)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mbc628ace28\" y=\"34.728512\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- $\\mathdefault{10^{-1}}$ -->\n",
       "      <g transform=\"translate(7.2 38.527731)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_16\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -2 0 \n",
       "\" id=\"md905716462\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"222.967615\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"214.006402\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"207.648319\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"202.716608\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"198.687106\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_10\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"195.28021\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_11\">\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"192.329023\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_12\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"189.725892\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_13\">\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"172.078015\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_14\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"163.116802\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_15\">\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"156.758719\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_16\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"151.827008\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_17\">\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"147.797506\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_18\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"144.39061\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_19\">\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"141.439423\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_20\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"138.836292\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_21\">\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"121.188416\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_22\">\n",
       "     <g id=\"line2d_33\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"112.227202\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_23\">\n",
       "     <g id=\"line2d_34\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"105.86912\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_24\">\n",
       "     <g id=\"line2d_35\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"100.937408\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_25\">\n",
       "     <g id=\"line2d_36\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"96.907906\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_26\">\n",
       "     <g id=\"line2d_37\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"93.501011\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_27\">\n",
       "     <g id=\"line2d_38\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"90.549824\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_28\">\n",
       "     <g id=\"line2d_39\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"87.946692\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_29\">\n",
       "     <g id=\"line2d_40\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"70.298816\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_30\">\n",
       "     <g id=\"line2d_41\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"61.337602\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_31\">\n",
       "     <g id=\"line2d_42\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"54.97952\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_32\">\n",
       "     <g id=\"line2d_43\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"50.047808\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_33\">\n",
       "     <g id=\"line2d_44\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"46.018306\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_34\">\n",
       "     <g id=\"line2d_45\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"42.611411\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_35\">\n",
       "     <g id=\"line2d_46\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"39.660224\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_36\">\n",
       "     <g id=\"line2d_47\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"37.057092\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_37\">\n",
       "     <g id=\"line2d_48\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"19.409216\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_38\">\n",
       "     <g id=\"line2d_49\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#md905716462\" y=\"10.448002\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_50\">\n",
       "    <defs>\n",
       "     <path d=\"M 0 3 \n",
       "C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n",
       "C 2.683901 1.55874 3 0.795609 3 0 \n",
       "C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n",
       "C 1.55874 -2.683901 0.795609 -3 0 -3 \n",
       "C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n",
       "C -2.683901 -1.55874 -3 -0.795609 -3 0 \n",
       "C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n",
       "C -1.55874 2.683901 -0.795609 3 0 3 \n",
       "z\n",
       "\" id=\"m4e12f9bf0a\" style=\"stroke:#1f77b4;\"/>\n",
       "    </defs>\n",
       "    <g clip-path=\"url(#p5fae5c0503)\">\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"52.918182\" xlink:href=\"#m4e12f9bf0a\" y=\"20.583636\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"120.657269\" xlink:href=\"#m4e12f9bf0a\" y=\"44.592076\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"190.745278\" xlink:href=\"#m4e12f9bf0a\" y=\"68.62652\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"262.072303\" xlink:href=\"#m4e12f9bf0a\" y=\"93.348151\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"334.036058\" xlink:href=\"#m4e12f9bf0a\" y=\"109.153205\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"346.3024\" xlink:href=\"#m4e12f9bf0a\" y=\"108.807998\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"351.935885\" xlink:href=\"#m4e12f9bf0a\" y=\"108.418322\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"357.281818\" xlink:href=\"#m4e12f9bf0a\" y=\"107.950585\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_51\">\n",
       "    <path clip-path=\"url(#p5fae5c0503)\" d=\"M 52.918182 89.831026 \n",
       "L 120.657269 118.413334 \n",
       "L 190.745278 147.986762 \n",
       "L 262.072303 178.08299 \n",
       "L 334.036058 208.447884 \n",
       "L 346.3024 213.623631 \n",
       "L 351.935885 216.000663 \n",
       "L 357.281818 218.256364 \n",
       "\" style=\"fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 37.7 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 372.5 228.14 \n",
       "L 372.5 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 372.5 228.14 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 37.7 10.7 \n",
       "L 372.5 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p5fae5c0503\">\n",
       "   <rect height=\"217.44\" width=\"334.8\" x=\"37.7\" y=\"10.7\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.loglog(npts,errs,'o',npts,npts**(-2.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11d45d0b8>,\n",
       " <matplotlib.lines.Line2D at 0x11d4fb940>,\n",
       " <matplotlib.lines.Line2D at 0x11d4fbcc0>]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"252.018125pt\" version=\"1.1\" viewBox=\"0 0 383.2 252.018125\" width=\"383.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 252.018125 \n",
       "L 383.2 252.018125 \n",
       "L 383.2 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 372.5 228.14 \n",
       "L 372.5 10.7 \n",
       "L 37.7 10.7 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" id=\"m958e3413ca\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.918182\" xlink:href=\"#m958e3413ca\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- $\\mathdefault{10^{1}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 12.40625 8.296875 \n",
       "L 28.515625 8.296875 \n",
       "L 28.515625 63.921875 \n",
       "L 10.984375 60.40625 \n",
       "L 10.984375 69.390625 \n",
       "L 28.421875 72.90625 \n",
       "L 38.28125 72.90625 \n",
       "L 38.28125 8.296875 \n",
       "L 54.390625 8.296875 \n",
       "L 54.390625 0 \n",
       "L 12.40625 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-49\"/>\n",
       "       <path d=\"M 31.78125 66.40625 \n",
       "Q 24.171875 66.40625 20.328125 58.90625 \n",
       "Q 16.5 51.421875 16.5 36.375 \n",
       "Q 16.5 21.390625 20.328125 13.890625 \n",
       "Q 24.171875 6.390625 31.78125 6.390625 \n",
       "Q 39.453125 6.390625 43.28125 13.890625 \n",
       "Q 47.125 21.390625 47.125 36.375 \n",
       "Q 47.125 51.421875 43.28125 58.90625 \n",
       "Q 39.453125 66.40625 31.78125 66.40625 \n",
       "z\n",
       "M 31.78125 74.21875 \n",
       "Q 44.046875 74.21875 50.515625 64.515625 \n",
       "Q 56.984375 54.828125 56.984375 36.375 \n",
       "Q 56.984375 17.96875 50.515625 8.265625 \n",
       "Q 44.046875 -1.421875 31.78125 -1.421875 \n",
       "Q 19.53125 -1.421875 13.0625 8.265625 \n",
       "Q 6.59375 17.96875 6.59375 36.375 \n",
       "Q 6.59375 54.828125 13.0625 64.515625 \n",
       "Q 19.53125 74.21875 31.78125 74.21875 \n",
       "z\n",
       "\" id=\"DejaVuSans-48\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(44.118182 242.738437)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"286.858704\" xlink:href=\"#m958e3413ca\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- $\\mathdefault{10^{2}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 19.1875 8.296875 \n",
       "L 53.609375 8.296875 \n",
       "L 53.609375 0 \n",
       "L 7.328125 0 \n",
       "L 7.328125 8.296875 \n",
       "Q 12.9375 14.109375 22.625 23.890625 \n",
       "Q 32.328125 33.6875 34.8125 36.53125 \n",
       "Q 39.546875 41.84375 41.421875 45.53125 \n",
       "Q 43.3125 49.21875 43.3125 52.78125 \n",
       "Q 43.3125 58.59375 39.234375 62.25 \n",
       "Q 35.15625 65.921875 28.609375 65.921875 \n",
       "Q 23.96875 65.921875 18.8125 64.3125 \n",
       "Q 13.671875 62.703125 7.8125 59.421875 \n",
       "L 7.8125 69.390625 \n",
       "Q 13.765625 71.78125 18.9375 73 \n",
       "Q 24.125 74.21875 28.421875 74.21875 \n",
       "Q 39.75 74.21875 46.484375 68.546875 \n",
       "Q 53.21875 62.890625 53.21875 53.421875 \n",
       "Q 53.21875 48.921875 51.53125 44.890625 \n",
       "Q 49.859375 40.875 45.40625 35.40625 \n",
       "Q 44.1875 33.984375 37.640625 27.21875 \n",
       "Q 31.109375 20.453125 19.1875 8.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-50\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(278.058704 242.738437)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L 0 2 \n",
       "\" id=\"md62babf0f7\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"42.213651\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"123.341296\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"164.536177\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"193.76441\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"216.43559\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_8\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"234.959292\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_9\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"250.620858\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_10\">\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"264.187525\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_11\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"276.154173\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_12\">\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"357.281818\" xlink:href=\"#md62babf0f7\" y=\"228.14\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" id=\"mf88c0e3ec0\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mf88c0e3ec0\" y=\"187.583563\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- $\\mathdefault{10^{-4}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 10.59375 35.5 \n",
       "L 73.1875 35.5 \n",
       "L 73.1875 27.203125 \n",
       "L 10.59375 27.203125 \n",
       "z\n",
       "\" id=\"DejaVuSans-8722\"/>\n",
       "       <path d=\"M 37.796875 64.3125 \n",
       "L 12.890625 25.390625 \n",
       "L 37.796875 25.390625 \n",
       "z\n",
       "M 35.203125 72.90625 \n",
       "L 47.609375 72.90625 \n",
       "L 47.609375 25.390625 \n",
       "L 58.015625 25.390625 \n",
       "L 58.015625 17.1875 \n",
       "L 47.609375 17.1875 \n",
       "L 47.609375 0 \n",
       "L 37.796875 0 \n",
       "L 37.796875 17.1875 \n",
       "L 4.890625 17.1875 \n",
       "L 4.890625 26.703125 \n",
       "z\n",
       "\" id=\"DejaVuSans-52\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(7.2 191.382782)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mf88c0e3ec0\" y=\"136.637144\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- $\\mathdefault{10^{-3}}$ -->\n",
       "      <defs>\n",
       "       <path d=\"M 40.578125 39.3125 \n",
       "Q 47.65625 37.796875 51.625 33 \n",
       "Q 55.609375 28.21875 55.609375 21.1875 \n",
       "Q 55.609375 10.40625 48.1875 4.484375 \n",
       "Q 40.765625 -1.421875 27.09375 -1.421875 \n",
       "Q 22.515625 -1.421875 17.65625 -0.515625 \n",
       "Q 12.796875 0.390625 7.625 2.203125 \n",
       "L 7.625 11.71875 \n",
       "Q 11.71875 9.328125 16.59375 8.109375 \n",
       "Q 21.484375 6.890625 26.8125 6.890625 \n",
       "Q 36.078125 6.890625 40.9375 10.546875 \n",
       "Q 45.796875 14.203125 45.796875 21.1875 \n",
       "Q 45.796875 27.640625 41.28125 31.265625 \n",
       "Q 36.765625 34.90625 28.71875 34.90625 \n",
       "L 20.21875 34.90625 \n",
       "L 20.21875 43.015625 \n",
       "L 29.109375 43.015625 \n",
       "Q 36.375 43.015625 40.234375 45.921875 \n",
       "Q 44.09375 48.828125 44.09375 54.296875 \n",
       "Q 44.09375 59.90625 40.109375 62.90625 \n",
       "Q 36.140625 65.921875 28.71875 65.921875 \n",
       "Q 24.65625 65.921875 20.015625 65.03125 \n",
       "Q 15.375 64.15625 9.8125 62.3125 \n",
       "L 9.8125 71.09375 \n",
       "Q 15.4375 72.65625 20.34375 73.4375 \n",
       "Q 25.25 74.21875 29.59375 74.21875 \n",
       "Q 40.828125 74.21875 47.359375 69.109375 \n",
       "Q 53.90625 64.015625 53.90625 55.328125 \n",
       "Q 53.90625 49.265625 50.4375 45.09375 \n",
       "Q 46.96875 40.921875 40.578125 39.3125 \n",
       "z\n",
       "\" id=\"DejaVuSans-51\"/>\n",
       "      </defs>\n",
       "      <g transform=\"translate(7.2 140.436362)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-51\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mf88c0e3ec0\" y=\"85.690724\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- $\\mathdefault{10^{-2}}$ -->\n",
       "      <g transform=\"translate(7.2 89.489943)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_16\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"37.7\" xlink:href=\"#mf88c0e3ec0\" y=\"34.744305\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- $\\mathdefault{10^{-1}}$ -->\n",
       "      <g transform=\"translate(7.2 38.543524)scale(0.1 -0.1)\">\n",
       "       <use transform=\"translate(0 0.684375)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "       <use transform=\"translate(63.623047 0.684375)\" xlink:href=\"#DejaVuSans-48\"/>\n",
       "       <use transform=\"translate(128.203125 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-8722\"/>\n",
       "       <use transform=\"translate(186.855469 38.965625)scale(0.7)\" xlink:href=\"#DejaVuSans-49\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <defs>\n",
       "       <path d=\"M 0 0 \n",
       "L -2 0 \n",
       "\" id=\"m91adae8ad7\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"223.193582\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"214.222363\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"207.857181\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"202.919963\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"198.885962\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_10\">\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"195.475263\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_11\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"192.520781\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_12\">\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"189.914743\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_13\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"172.247162\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_14\">\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"163.275943\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_15\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"156.910762\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_16\">\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"151.973544\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_17\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"147.939543\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_18\">\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"144.528844\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_19\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"141.574362\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_20\">\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"138.968324\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_21\">\n",
       "     <g id=\"line2d_33\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"121.300743\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_22\">\n",
       "     <g id=\"line2d_34\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"112.329524\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_23\">\n",
       "     <g id=\"line2d_35\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"105.964343\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_24\">\n",
       "     <g id=\"line2d_36\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"101.027125\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_25\">\n",
       "     <g id=\"line2d_37\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"96.993124\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_26\">\n",
       "     <g id=\"line2d_38\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"93.582424\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_27\">\n",
       "     <g id=\"line2d_39\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"90.627942\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_28\">\n",
       "     <g id=\"line2d_40\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"88.021905\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_29\">\n",
       "     <g id=\"line2d_41\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"70.354324\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_30\">\n",
       "     <g id=\"line2d_42\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"61.383105\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_31\">\n",
       "     <g id=\"line2d_43\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"55.017923\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_32\">\n",
       "     <g id=\"line2d_44\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"50.080705\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_33\">\n",
       "     <g id=\"line2d_45\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"46.046704\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_34\">\n",
       "     <g id=\"line2d_46\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"42.636005\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_35\">\n",
       "     <g id=\"line2d_47\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"39.681523\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_36\">\n",
       "     <g id=\"line2d_48\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"37.075485\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_37\">\n",
       "     <g id=\"line2d_49\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"19.407905\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_38\">\n",
       "     <g id=\"line2d_50\">\n",
       "      <g>\n",
       "       <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"37.7\" xlink:href=\"#m91adae8ad7\" y=\"10.436685\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_51\">\n",
       "    <defs>\n",
       "     <path d=\"M 0 3 \n",
       "C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n",
       "C 2.683901 1.55874 3 0.795609 3 0 \n",
       "C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n",
       "C 1.55874 -2.683901 0.795609 -3 0 -3 \n",
       "C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n",
       "C -2.683901 -1.55874 -3 -0.795609 -3 0 \n",
       "C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n",
       "C -1.55874 2.683901 -0.795609 3 0 3 \n",
       "z\n",
       "\" id=\"m23d3640b73\" style=\"stroke:#1f77b4;\"/>\n",
       "    </defs>\n",
       "    <g clip-path=\"url(#pe52c648291)\">\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"52.918182\" xlink:href=\"#m23d3640b73\" y=\"20.583636\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"123.341296\" xlink:href=\"#m23d3640b73\" y=\"44.618882\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"193.76441\" xlink:href=\"#m23d3640b73\" y=\"68.680161\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"264.187525\" xlink:href=\"#m23d3640b73\" y=\"93.429394\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"334.610639\" xlink:href=\"#m23d3640b73\" y=\"109.252095\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"346.577287\" xlink:href=\"#m23d3640b73\" y=\"108.906503\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"352.070467\" xlink:href=\"#m23d3640b73\" y=\"108.516391\"/>\n",
       "     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"357.281818\" xlink:href=\"#m23d3640b73\" y=\"108.048132\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_52\">\n",
       "    <path clip-path=\"url(#pe52c648291)\" d=\"M 52.918182 34.744305 \n",
       "L 123.341296 50.080705 \n",
       "L 193.76441 65.417106 \n",
       "L 264.187525 80.753506 \n",
       "L 334.610639 96.089906 \n",
       "L 346.577287 98.695944 \n",
       "L 352.070467 99.892222 \n",
       "L 357.281818 101.027125 \n",
       "\" style=\"fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_53\">\n",
       "    <path clip-path=\"url(#pe52c648291)\" d=\"M 52.918182 85.690724 \n",
       "L 123.341296 116.363525 \n",
       "L 193.76441 147.036326 \n",
       "L 264.187525 177.709127 \n",
       "L 334.610639 208.381927 \n",
       "L 346.577287 213.594003 \n",
       "L 352.070467 215.986559 \n",
       "L 357.281818 218.256364 \n",
       "\" style=\"fill:none;stroke:#2ca02c;stroke-linecap:square;stroke-width:1.5;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 37.7 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 372.5 228.14 \n",
       "L 372.5 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 37.7 228.14 \n",
       "L 372.5 228.14 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 37.7 10.7 \n",
       "L 372.5 10.7 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pe52c648291\">\n",
       "   <rect height=\"217.44\" width=\"334.8\" x=\"37.7\" y=\"10.7\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.loglog(1/dxs,errs,'o',1/dxs,dxs,1/dxs,dxs**2.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
